import Vue from 'vue'
import store from './store'
import App from './App'

import Json from './Json' //测试用数据


import { myRequest } from './utils/api.js' //请求函数
Vue.prototype.$myRuquest = myRequest
Vue.filter('formatDate',(date)=>{
	const nDate = new Date(date)
	const year = nDate.getFullYear()
	const month = nDate.getMonth().toString().padStart(2,0)
	const day = nDate.getDay().toString().padStart(2,0)
	return year+'-'+month+'-'+day
})


// 权限跳转
Vue.prototype.$navigateTo = (options)=>{
	console.log("Vue.prototype.$navigateTo 权限跳转--options--",options)
	// 判断用户是否登录
	if (!store.state.old.hasLogin) {
		uni.showToast({
			title: '请先登录',
			icon: 'none'
		});
		return uni.navigateTo({
			// url: '/pages/login/login',
			url : '/pages/public/login',
		});
	}
	uni.navigateTo(options);
}


/**
 *  因工具函数属于公司资产, 所以直接在Vue实例挂载几个常用的函数
 *  所有测试用数据均存放于根目录json.js
 *  
 *  css部分使用了App.vue下的全局样式和iconfont图标，有需要图标库的可以留言。
 *  示例使用了uni.scss下的变量, 除变量外已尽量移除特有语法,可直接替换为其他预处理器使用
 */
const msg = (title, duration=1500, mask=false, icon='none')=>{
	//统一提示方便全局修改
	if(Boolean(title) === false){
		return;
	}
	uni.showToast({
		title,
		duration,
		mask,
		icon
	});
}
const json = type=>{
	//模拟异步请求数据
	return new Promise(resolve=>{
		setTimeout(()=>{
			resolve(Json[type]);
		}, 500)
	})
}

const prePage = ()=>{
	let pages = getCurrentPages();
	let prePage = pages[pages.length - 2];
	// #ifdef H5
	return prePage;
	// #endif
	return prePage.$vm;
}


Vue.config.productionTip = false
Vue.prototype.$fire = new Vue();
Vue.prototype.$store = store;

Vue.prototype.$api = {msg, json, prePage};

App.mpType = 'app'

const app = new Vue({
	// store,
    ...App
})
app.$mount()


// post请求的参考
				// const res = await this.$myRuquest({
				// 	url: '/api/login',
				// 	method:'POST',
				// 	data:
				// 		{username:this.username,
				// 		password:this.password}
				// })